#[钛妹]: 字典怎么循环遍历啊？只能拿到钥匙吗？
#[钛哥]: 想要啥有啥！钥匙、保险箱、甚至整个仓库都能搬出来~

# 示例字典
smart_home = {
    "客厅灯": "关闭",
    "空调温度": 26,
    "扫地机器人": "工作中",
    "安防模式": "开启"
}

#[钛妹]: 最基础的循环只能拿到钥匙？
#[钛哥]: 默认发钥匙，但能开保险箱：
print("=== 基础循环 ===")
for key in smart_home:
    print(f"找到设备：{key}")  # 输出所有键

#[钛妹]: 那怎么直接看设备状态？
#[钛哥]: 用values()直通车，直达保险箱：
print("\n=== 值循环 ===")
for status in smart_home.values():
    print(f"当前状态：{status}")  # 输出所有值

#[钛妹]: 要是想同时看到设备名和状态呢？
#[钛哥]: items()双人舞，打包成元组：
print("\n=== 键值对循环 ===")
for device, state in smart_home.items():
    print(f"{device} => {state}")  # 同时获取键值

#[钛妹]: 单独拿钥匙有什么用吗？
#[钛哥]: 钥匙能开所有锁！比如实时修改：
print("\n=== 钥匙操控 ===")
for key in smart_home:
    if "温度" in key:
        smart_home[key] = 24  # 修改空调温度
print(f"调温后：{smart_home}")

#[钛妹]: 直接循环和用keys()有啥区别？
#[钛哥]: 双胞胎！但keys()更直白：
print("\n=== 显式钥匙循环 ===")
for key in smart_home.keys():
    if "机器人" in key:
        print(f"{key}需要充电了！")  # 扫地机器人提示

#[钛妹]: 如果只要值，不用键怎么办？
#[钛哥]: values()专场演出：
print("\n=== 纯值处理 ===")
total = 0
for value in smart_home.values():
    if isinstance(value, int):
        total += value
print(f"所有数值总和：{total}")  # 计算温度数值

#[钛哥]: 重点总结！
# 1.基础循环：遍历所有键
for k in smart_home:
    pass

# 2.显式钥匙：keys()方法
for k in smart_home.keys():
    pass

# 3.值遍历：values()方法
for v in smart_home.values():
    pass

# 4.双变量：items()解包
for k, v in smart_home.items():
    pass

#[钛妹]: 原来遍历还能这么玩！特别是items()拆包
#[钛妹]: 处理配置信息的时候直接起飞啊！

#[钛妹]: 对了各位！持续学习才是硬道理！点赞关注不迷路！